import router from './router'
import store from './store'
// import NProgress from 'nprogress' // Progress 进度条
// import 'nprogress/nprogress.css'// Progress 进度条样式
import { Message } from 'element-ui'
import { getToken,removeToken } from '@/utils/auth' // 验权


const whiteList = ['/login','/regist','/forget'] // 不重定向白名单

router.beforeEach((to, from, next) => {
//   NProgress.start()
   if (getToken()) {
    // 如果已经登录过再次跳转至登录页面强制会回到首页
    if (to.path === '/login') {
      next({ path: '/' })
    //   NProgress.done() // if current page is dashboard will not trigger	afterEach hook, so manually handle it
    } else {
      // 在每一个页面拉取用户信息 判断当前是否为登录状态
      if (store.getters.phone === '') {
        store.dispatch('GetInfo').then(res => { // 拉取用户信息
          // console.log(JSON.stringify(res))
          if(res.code == 200){
            next()
          }else{
            // 否则证明用户信息获取失败 让用户重新登录
            if(res.code == 2){
              removeToken()
            }
            next({ path: '/login' })
          }
        }).catch((err) => {
          // 请求建立失败 强制退出
          // store.dispatch('FedLogOut').then(() => {
          //   Message.error(err || 'Verification failed, please login again')
          //   next({ path: '/' })
          // })
        })
      } else {
        next()
      }
    }
  } else {
    if (whiteList.indexOf(to.path) !== -1) {
      console.log('存在报名单里')
      console.log(to.path)
      next()
    } else {
      console.log('不存在白名单')
      console.log(to.path)
      next('/login')
    //   NProgress.done()
    }
  }
})

router.afterEach(() => {
//   NProgress.done() // 结束Progress
})
